home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
031-040
/
amok34
/
startupmenu
/
startupmenu.dok
< prev
next >
Wrap
Text File
|
1993-11-04
|
7KB
|
229 lines
===============================================================
Dokumentation zu "StartupMenu" Version 1.0 von Martin Horneffer
===============================================================
Entstehung
Dieses Programm entstand aus der Notwendigkeit, verschiedene
"assigns", Utilities, o.ä. nur manchmal in der 'startup-
sequence' zu haben, manchmal nicht.
Wenn ich von meiner Festplatte boote, weiß der Computer noch
nicht, was ich mit ihm zu tun gedenke. Daher kann er auch nicht
wissen, ob er z.B. die DMouse oder Workbench starten soll, oder
vielleicht besser die "JazzBench" als die Workbench, soll er die
"assigns" für M2Amiga machen und den Stack heraufsetzen oder soll
er die Arbeitsumgebung für Aztec-C (urgghhh!) einrichten ???
Oder soll er erstmal ein Terminal-Prg aufrufen und meine
Stammbox anwählen, oder gar ein Spielchen starten?
Eine Möglichkeit ist es, gleich in der 'startup-sequence' alle
möglichen "Nützlichkeiten" aufzurufen, mit der Gefahr, daß man
nacher vielleicht nicht mehr genu RAM oder Rechenzeit für die
eigentliche Anwendung hat und der startup viel zu lange dauert.
Oder man reduziert die 'startup-sequence' auf ein Minimun und
mach nachher alles von Hand.
Das ist nicht sehr komfortabel - für jede Anwendung und jedes
Utility muß zumindest eine Batch-Datei von der Shell aufgerufen
werden oder ein Icon, das in irgendeinem verschachtelten
Subdirectory steckt, angeklickt werden.
DAS muß auf dem Amiga ja nicht sein, dachte ich mir. Warum
kann man nicht beim Hochfahren des Computers verschiedene
Utilities an- oder abwählen oder auf Tastendruck eine sinvolle
Voreinstellung übernehmen?
Allerdings kann ich auch nicht ganz abstreiten, das ich zu
diesem Programm inspiriert wurde, als ich bei einem Bekannten ein
ähnliches Programm sah, das auf einem anderen, leider viel zu
weit verbeitetem Computertyp das Einstellen von sog.
"Accessories" u.ä. beim Hochfahren ermöglicht.
Benötigtes
Beim Start des Programmes muß für den Titel des Fensters z.Zt.
der Font "courier/24" vorhanden sein. Wer lieber einen anderen
mag, kann dies, wie auch vieles anderes, im Quelltext im
Konstantenteil einstellen.
Verwendung
Um es gleich zu sagen: Leute, die ihre Programme durch
Einlegen der richtigen Diskette und Drücken jener drei Tasten zu
starten pflegen, werden an dem Prg keine Freude haben.
Wenn es im Sinne des Erfinders verwendet wird, dan sieht das
Ende der 'startup-sequence' etwas so aus:
...
StartupMenu <infile> <outfile>
EXECUTE <outfile>
<infile> ist dabei eine Datei, über deren Aufbau noch
gesprochen werden wird und die alle Informationen für die
anzuzeigenden Gadgets und die zu erstellende Batch-Datei mit dem
Namen <outfile> enthält.
<outfile> ist eine temporäre Datei, die durch das Programm
erstellt wird und auschließend ge"batched" werden kann.
Nach dem Start des Prgs erscheint ein Fenster mit einer großen
Überschrift und mehreren "boolschen Gadgets", "Buttons" oder
"Knöpfen". Sie werden durch einen kurzen Text unterschieden und
sind zunächst unabhängig voneinander aktiviert oder nicht
aktiviert. Sie können mit der Maus verstellt werden, wobei sie
sich gegenseitig ausschließen können, aber nicht müssen.
Beendet wird das Prg indem man <RETURN> drückt, indem man das
hohe, mittlere Gadget mit der Aufschrift "Fertig" angeklickt,
oder indem man ein anderes Gadget doppelklickt. Dieses wird dann
in jedem Fall als aktiviert betrachtet.
Es ist als möglich, auch bei Totalausfall der Maus oder
Totalausfall der Tastatur weiter zu arbeiten.
Format der verwendeten Datei ("<infile>")
Diese Datei besteht aus mehreren Einträgen. Jeder Eintrag
erzeugt genau ein Gadget.
Ein Eintrag beginnt mir einer Zeile, die ein Doppelkreuz '#'
am Anfang hat. Das Doppelkreuz ist nur der Kennzeichner für
einen neuen Eintrag und hat sonst keine Bedeutung.
Unmittelbar darauf, also OHNE "Space" o.ä. sollte entweder
ein Plus '+' oder ein Minus '-' folgen. Ist das Zeichen nach dem
Doppelkreuz ein Plus, so wird das Gadget zunächst aktiviert
dargestellt.
Alles, was danach in derselben Zeile kommt, d.h. alles
zwischen dem Zeichen nach dem Doppelkreuz und vor dem nächsten
LF, stellt den Titel des Gadgets dar. Dazu zählen auch alle
Leer-, Kontroll- und Sonderzeichen.
Danach folgt eine beliebige Zahl von Zeilen, die Titel von den
Gadgets enthalten, welche sich nicht mit dem aktuellen vertragen.
Also alle Gadgets, die desaktiviert werden sollen, wenn das
aktuelle Gadget aktiviert wird.
Zur Erkennung der Titel ist Groß- und Kleinschreibung egal,
aber die Leer-, Kontroll- und Sonderzeichen müssen stimmen, auch
die am Ende der Zeile!
Trenner ist ausschließlich das LF!
Sollen sich zwei Gadgets gegenseitig ausschließen, so reicht
es, dies bei einem zu vermerken.
Eine Zeile, die mit dem Prozentzeichen beginnt, beendet diese
Liste.
Es folgt darauf eine Reihe von Zeilen, die für den Fall des
aktivierten Gadgets beim Programmende in die Datei <outfile>
eingefügt werden.
Hier sollten also die (CLI-)Anweisungen eingegeben werden, die
das jeweilige Utility starten.
Beendet wird diese Kommando-Liste durch das '#' des nächsten
Eintrages.
Achtung!!!
Das beschriebene Format muß genau eingehalten werden.
Fehlerhafte Einträge weren kommentarlos ignoriert!
Beispiel
Als Beispiele sollte hier ein Ausschnitt aus meinem 'infile' reichen:
#-DCF-77
%
run dcf +d
#+DMouse
%
dmouse -m60 -c3 -C ash
runback -1 dh0:bin/dlineart -a -n 3 -c2500 -l30
#+InstallBeep
%
installbeep dh0:sounds/cheer.snd
#-JazzBench
Workbench
installbeep
%
assign wb: dh0:wb
set loadjazzb=1
#-Workbench
%
sys:c/loadwb -debug
#+Shell (!)
%
ashell newcon:0/10/640/246/AMIGA-Shell
#-DFÜ
Shell (!)
%
ashell newcon:0/10/640/246/DNet-Shell FROM s:dfü
#-DNet
Shell (!)
DFÜ
%
ashell newcon:0/10/640/246/DNet-Shell FROM s:instdnet
#-Modula-2 programmieren
shell (!)
dnet
DFÜ
%
ashell newcon:0/10/640/246/Modula-Shell s:modula
#-Aztec-C programmieren
shell (!)
dnet
modula-2 programmieren
DFÜ
%
ashell newcon:0/10/640/246/Aztec-C-Shell s:aztec
#-Empire
%
cd dh0:spiele/empire
stack 10000
runback more "passwords v1.1"
runback empire
#-Risiko
empire
%
assign risk: dh0:spiele/risk
cd risk:
runback risk -info
#-MegaWB
%
runback utilities:megawb
#+kill Initial-CLI
%
endcli >NIL:
Man beachte, daß sich z.B. 'JazzBench' weder mit 'Installbeep'
noch mit 'Workbench' verträgt, daß sich aber 'installbeep' und
'Workbench' sehr wohl miteinander vertragen.
Sollen sich drei oder mehr Einträge alle untereinander nicht
vertragen, so ist z.B. wie bei "shell", "dfü", "DNet",
"modula-2"und "aztec-c" zu verfahren.
Zum Austesten kann man z.B.
startupmenu infile *
sagen. Man sieht dann, was sonst ge"batched" werden würde.
Viel Spaß, Martin. 28.12.89